package com.anti.modular.owner.ownerleasebill.param;

import com.anti.commom.pojo.BaseParam;
import com.anti.modular.owner.ownerleasebilldetail.entity.OwnerLeaseBillDetail;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
* 業主賬單参数类
 *
 * @author anti
 * @date 2021-05-20 14:25:38
*/
@Data
public class OwnerLeaseBillParam extends BaseParam {
    /**
     * 主键id
     */
    @NotNull(message = "主键id不能为空，请检查id参数", groups = {edit.class, delete.class, detail.class,editJz.class,editCxdz.class})
    private Long id;

    /**
     * 業主租约主键
     */
    @NotNull(message = "租约id不能为空，请检查ownerLeaseId参数", groups = {editJz.class})
    private Long ownerLeaseId;

    /**
     * 賬單流水號
     */
    private String no;

    /**
     * 期数数字
     */
    private Integer qsNum;

    /**
     * 收租日
     */
    private String rentedDay;

    /**
     * 账单开始时间
     */
    @NotNull(message = "账单开始时间不能为空，请检查rentStartDate参数", groups = {add.class, edit.class})
    private String rentStartDate;

    /**
     * 账单结束时间
     */
    @NotNull(message = "账单结束时间不能为空，请检查rentEndDate参数", groups = {add.class, edit.class})
    private String rentEndDate;

    /**
     * 租金
     */
    private BigDecimal rent;

    /**
     * 小计
     */
    private BigDecimal subtotal;

    /**
     * 實收金額
     */
    private BigDecimal receiveAmount;

    /**
     * 實收日期
     */
    @NotNull(message = "交租日期不能为空，请检查receiveDate参数", groups = {editJz.class})
    private String receiveDate;

    /**
     * 收款方式
     */
    @NotNull(message = "收款方式不能为空，请检查collectionType参数", groups = {editJz.class})
    private Integer collectionType;

    /**
     * 是否免租
     */
    @NotNull(message = "是否免租不能为空，请检查rentFree参数", groups = {add.class, edit.class})
    private Integer rentFree;

    /**
     * 租金调整
     */
    @NotNull(message = "租金调整不能为空，请检查rentAdjust参数", groups = {add.class, edit.class})
    private Integer rentAdjust;

    /**
     * 备注
     */
    private String remark;

    /**
     * 账单状态 （1 正常生效状态 2 到账状态 3清算状态  4 清算到账转态 5未生效状态）
     */
    private Integer billStatus;

    private Integer type;

    private boolean searchNowType;

    private Integer numType;

    /**
     * 状态（字典 0正常 1注銷 2刪除）
     */
    private Integer status;

    /**
     * 搜索类型
     */
    private String searchType;

    /**
     * 参数校验分组：编辑
     */
    public @interface editJz {
    }

    public @interface editCxdz {
    }
}
